ZoomRect the rect of card field "Mainkeyword", the rect of card button "Delete Keyword"
set the lockScreen to true
set the cursor to 4
put "" into line lineNum of card field "Mainkeyword"
put SortItems (card field "Mainkeyword",true) into card field "Mainkeyword"
put 0 into connect
set the lockScreen to false
exit mouseUp
end if
if connect = 2 then
hide card button "hiliter1"
hide card button "Quit Find"
hide card field "Mainkeyword"
ZoomRect the rect of card field "Mainkeyword", the rect of bkgnd button "Find"
set the lockScreen to true
set the cursor to 4
put 1 into lineNum
repeat number of cards times
if name1 is in bkgnd field "Keyword" then
put first line of bkgnd field "Name" into line lineNum of card field "FoundName" of card "front"
add 1 to lineNum
go next
else
go next
end if
end repeat
set the lockScreen to false
ZoomRect the rect of bkgnd button "Find", the rect of card field "FoundName"
show card field "FoundName"
show card button "Quit Find"
exit mouseUp
end if
if connect = 1 then
hide card button "hiliter1"
hide card button "Quit Sort"
hide card field "Mainkeyword"
ZoomRect the rect of card field "Mainkeyword", the rect of card button "Sort"
set the lockScreen to true
set the cursor to 4
go first
repeat number of cards times
put "~" into first line of bkgnd field "sorted"
go next
end repeat
put 1 into count
go first
repeat the number of cards times
find name1 in bkgnd field "Keyword" of card count
if the result is empty then
put name1 into first line of bkgnd field "sorted"
add 1 to count
go next
else
add 1 to count
go next
end if
end repeat
go card "front"
put " " into bkgnd field "sorted"
go first
sort by bkgnd field "sorted"
put 0 into connect
set the lockScreen to false
exit mouseUp
end if
end mouseUp
-- part 57 (button)
-- low flags: 80
-- high flags: A002
-- rect: left=193 top=263 right=285 bottom=293
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Quit Sort
----- HyperTalk script -----
on mouseUp
global connect
hide card button "Quit Sort"
hide card button "hiliter1"
hide card field "Mainkeyword"
ZoomRect the rect of card field "Mainkeyword", the rect of card button "Sort"
put 0 into connect
end mouseUp
-- part 58 (button)
-- low flags: 80
-- high flags: A002
-- rect: left=193 top=263 right=285 bottom=293
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Quit Delete
----- HyperTalk script -----
on mouseUp
global connect
hide card button "Quit Delete"
hide card button "hiliter1"
hide card field "Mainkeyword"
ZoomRect the rect of card field "Mainkeyword", the rect of card button "Delete Keyword"
put 0 into connect
end mouseUp
-- part 66 (field)
-- low flags: 81
-- high flags: 2007
-- rect: left=108 top=129 right=264 bottom=379
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 0
-- font id: 3
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: FoundName
----- HyperTalk script -----
on mouseUp
global connect
-- compute line number of the mouseclick
get item 2 of the clickloc - item 2 of the rect of me + scroll of me
put 1 + it div the textHeight of me into lineNum
-- highlight line, use magic button
set hilite of card button "hiliter1" to false
get item 2 of rect of me + lineNum * textHeight of me - scroll of me
put 1 + it - textHeight of me div 2 into v
show card button "hiliter1" at item 1 of loc of card button "hiliter1",v -- this lights up the button
set hilite of card button "hiliter1" to true -- make button black
-- put data selected into sort field
put line lineNum of card field "FoundName" into name1
if connect = 2 then
hide card button "hiliter1"
hide card button "Quit"
hide card button "Quit Find"
hide card field "FoundName"
ZoomRect the rect of card field "FoundName", the rect of bkgnd button "Find"
put "" into card field "FoundName"
put 0 into connect
end if
find name1 in field "name"
end mouseUp
-- part 67 (button)
-- low flags: 80
-- high flags: A002
-- rect: left=193 top=263 right=285 bottom=293
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: Quit
----- HyperTalk script -----
on mouseUp
global connect
hide card button "Quit"
hide card field "FoundName"
ZoomRect the rect of card field "FoundName", the rect of bkgnd button "Find"
put 0 into connec
put "" into card field "FoundName"
end mouseUp
-- part 25 (button)
-- low flags: 80
-- high flags: 4000
-- rect: left=109 top=161 right=180 bottom=362
-- title width / last selected line: 0
-- icon id / first selected line: 0 / 0
-- text alignment: 1
-- font id: 0
-- text size: 12
-- style flags: 0
-- line height: 16
-- part name: hiliter1
-- part contents for background part 2
----- text -----
2/27/88
-- part contents for background part 47
----- text -----
BASEBALL TEAM,
CHOIR,
EMPLOYEE,
FRIEND,
RELATIVE,
STUDENT,
XMAS,
-- part contents for background part 52
----- text -----
Date established
Age of card
-- part contents for background part 51
----- text -----
Tue, Feb 23, 1988
-- part contents for background part 53
----- text -----
Business
Adress
-- part contents for background part 54
----- text -----
Home
Adress
-- part contents for background part 58
----- text -----
Name
-- part contents for background part 56
----- text -----
Family
-- part contents for background part 60
----- text -----
Home Phone
-- part contents for background part 62
----- text -----
Business Phone
-- part contents for background part 64
----- text -----
Areas
-- part contents for card part 48
----- text -----
Address Master goes beyond the functionality of the "rolodex" type of stack due to its powerful find and sort buttons. You can find people by their first and/or last name, the first letter of their first or last name, or by their "keywords". You attach keywords (ie: friend, relative, Christmas card, employee, student, job, etc.) to each person's card. Sorting can be done by first name, last name, or keyword.
When a find or sort is to be done by keyword, a scrolling field displays the complete list of
keywords you've put in the stack. Just click once on the keyword of choice and Address Master will return a scrolling list of all the people who posess that keyword. Then click on the person you want and Address Master does the rest.
Buttons are included to totally automate the process of adding and deleting both cards and keywords.
Each card has both a large scrolling field for comments relating to that person and a field displaying the date the card was created and the age of the card (in days). To move from an address card to the front card, just click the
"Address Master" button.
I would like to thank the following people:
Marvin G. Nelson for his XFCN "SortItems".
Richard P. Davis for his XCMD "ZoomRect".
Steve Drazga for his functions "noFieldDelete"
and "noButtonDelete"
Joe LaBenne for his ideas and inspiration.
Gordon Williams for his patience.
Bill Atkinson for his inspired program.
This stack is not to be sold under any conditions. Please feel free to distribute it to friends, post it on bulletin board systems, and so forth. Please do NOT post this stack or ZoomRect itself on CI$ (Compuserve).
If you enjoy this freeware stack, please show it by creating a stack or script and passing it on to a friend.
All necessary fonts, icons, XFCNs, and XCMDs are included in the stack. No bugs have been found to date. However, as with all freeware and shareware, use it at your own risk and backup your data. Hope you enjoy Address Master and find it useful.